package TarryDAOS;

import Herramientas.PasarelaDatos;
import Herramientas.ResultSets;
import TarryDTOS.TarryProductosDTO;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Mauricio Alan
 */
public class TarryProductosDAO {

    private PasarelaDatos db;
    private ResultSets res;

    public TarryProductosDAO() {
        db = new PasarelaDatos();
        res = new ResultSets();
    }

    /**
     * ALAN GONZALEZ METODO QUE DEVUELVE TODO EL CATALOGO DE PRODUCTOS
     *
     * @return
     */
    public Vector todoProducto() {
        Vector productos = new Vector();
        String query = "SELECT * FROM catalogo_productos ";
        db.openDatabase();
        ResultSet rst = db.executeQuery(query);
        try {
            while (rst.next()) {
                TarryProductosDTO p = new TarryProductosDTO();
                p = res.tarryProductosDTO(rst);
                productos.add(p);
            }
        } catch (SQLException ex) {
            Logger.getLogger(TarryProductosDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        db.closeDatabase();
        return productos;
    }

    /**
     * ALAN GONZALEZ DEVUELVE LA DESCRIPCION DE UN PRODUCTO
     *
     * @param cb
     * @return
     */
    public TarryProductosDTO unProducto(String cb) {
        TarryProductosDTO tarryProductosDTO = new TarryProductosDTO();
        String query = "select * from catalogo_productos where catalogo_productos.id_cb = " + cb;
        db.openDatabase();
        ResultSet rst = db.executeQuery(query);
        try {
            if (rst.next()) {
                tarryProductosDTO = res.tarryProductosDTO(rst);
            }
        } catch (SQLException ex) {
            Logger.getLogger(TarryProductosDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        db.closeDatabase();
        return tarryProductosDTO;
    }

    /**
     * ALAN GONZALEZ METODO PARA SABER SI EXISTE UN PRODUCTO DENTRO DEL CATALOGO
     *
     * @param cb
     * @return
     */
    public Boolean existeProductoCatalogo(String cb) {
        Boolean bandera = new Boolean(null);
        db.openDatabase();
        String query = "SELECT * FROM catalogo_productos WHERE catalogo_productos.id_tipo =3 AND catalogo_productos.id_cb = " + cb;
        ResultSet rst = db.executeQuery(query);
        try {
            if (rst.next()) {
                bandera = true;
            } else {
                bandera = false;
            }
        } catch (SQLException ex) {
            Logger.getLogger(TarryProductosDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        db.closeDatabase();
        return bandera;
    }

    /**
     * ALAN GONZALEZ ESTE METODO DEVUELVE LA DESCRIPCION DE UN PRODUCTO EN
     * CADENA
     *
     * @param idProducto
     * @return
     */
    public String descripcionProducto(int idProducto) {
        String descripcion = new String();
        String sql = "";
        sql += " SELECT productos_venta.nombre_producto ";
        sql += " AS ";
        sql += " descripcion";
        sql += " FROM";
        sql += " productos_venta";
        sql += " where ";
        sql += " productos_venta.id ="+idProducto;
        db.openDatabase();
        ResultSet rst = db.executeQuery(sql);
        try {
            if(rst.next()){
                descripcion = rst.getString("descripcion");
            }
        } catch (SQLException ex) {
            Logger.getLogger(TarryProductosDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        db.closeDatabase();
        return descripcion;
    }
}
